#ifndef __GAMEITEM__
#define __GAMEITEM__

#include "HItemManager.h"

namespace BombBox
{
	class GameItem
	{
	public:
		virtual int getType() = 0;
	};

	//enum GameItemType
	//{
	//	GIT_BOX_0 = 101,
	//	GIT_BOX_1 = 102,
	//	GIT_BOX_2 = 103,
	//	GIT_BOX_3 = 104,

	//	GIT_BOMB_0 = 201,
	//	GIT_BOMB_1 = 202,
	//	GIT_BOMB_2 = 203,
	//	GIT_BOMB_3 = 204
	//};

	//class GameItem_Box : public ItemListener, public GameItem
	//{
	//public:
	//	GameItem_Box(void);
	//	~GameItem_Box(void);

	//public:
	//	virtual int getType(){ return GIT_BOX_0; }
	//	virtual bool doDamage( );

	//public:
	//	void setItemController( ItemController* pItemController );
	//	ItemController* getItemController( void ) { return m_pItemController; }

	//public:
	//	void onItemPicked( void );
	//	void setPosition( const irr::core::vector3df& vPos ){ m_vPos = vPos; }

	//public:
	//	virtual const char* getItemName( void );
	//	virtual irr::core::stringc getItemMesh( int nStatus );
	//	virtual irr::core::stringc getItemPath( int nStatus );
	//	virtual bool getStatusAnimation( int nStatus );
	//	virtual int getAnimationSpeed( int nStatus );
	//	virtual void onAnimationStop( int nStatus );
	//	virtual bool enableLight( int nStatus );
	//	virtual const irr::core::vector3df& getPosition( int nStatus ) { return m_vPos; }

	//protected:
	//	irr::core::stringc	m_sItem0;
	//	irr::core::stringc	m_sItem1;
	//	irr::core::stringc	m_sItem2;
	//	irr::core::stringc	m_sItem3;

	//	irr::core::stringc	m_sFilePath;

	//	int					m_nIndex;

	//	irr::core::vector3df	m_vPos;

	//	ItemController*		m_pItemController;
	//};

	//class GameItem_Bomb0 : public ItemListener, public GameItem
	//{
	//public:
	//	GameItem_Bomb0( void );
	//	~GameItem_Bomb0( void );

	//public:
	//	virtual int getType(){ return GIT_BOMB_0; }
	//	virtual void doBomb( );

	//public:
	//	void setItemController( ItemController* pItemController );
	//	ItemController* getItemController( void ) { return m_pItemController; }
	//	void setPosition( const irr::core::vector3df& vPos ){ m_vPos = vPos; }

	//public:
	//	virtual const char* getItemName( void );
	//	virtual irr::core::stringc getItemMesh( int nStatus );
	//	virtual irr::core::stringc getItemPath( int nStatus );
	//	virtual bool getStatusAnimation( int nStatus );
	//	virtual int getAnimationSpeed( int nStatus );
	//	virtual void onAnimationStop( int nStatus );
	//	virtual bool enableLight( int nStatus );
	//	virtual const irr::core::vector3df& getPosition( int nStatus ) { return m_vPos; }

	//protected:
	//	ItemController*		m_pItemController;

	//	irr::core::stringc	m_sItem0;
	//	irr::core::stringc	m_sFilePath;

	//	irr::core::vector3df	m_vPos;
	//};

	//class GameItem_Bomb1 : public GameItem_Bomb0
	//{
	//public:
	//	GameItem_Bomb1( void );
	//	~GameItem_Bomb1( void );

	//public:
	//	virtual int getType(){ return GIT_BOMB_1; }
	//	virtual void doBomb( );
	//};

	//class GameItem_Bomb2 : public GameItem_Bomb0
	//{
	//public:
	//	GameItem_Bomb2( void );
	//	~GameItem_Bomb2( void );

	//public:
	//	virtual int getType(){ return GIT_BOMB_2; }
	//	virtual void doBomb( );
	//};

	//class GameItem_Bomb3 : public GameItem_Bomb0
	//{
	//public:
	//	GameItem_Bomb3( void );
	//	~GameItem_Bomb3( void );

	//public:
	//	virtual int getType(){ return GIT_BOMB_3; }
	//	virtual void doBomb( );
	//};

	GameItem* createItem( int nType );

}

#endif